package com.architecture.util.number;

/**
 * <p>This class has utilities methods for be used with Numbers.</p>
 * @author JR
 * @version 1.0
 * @category Number Utilities
 */
public final class NumberUtility {
	
	/**
	 * private constructor of <code>NumberUtility</code>.
	 */
	private NumberUtility() {
		super();
	}
	
	/**
	 * <p>Verifies if the first parameter is different than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean ne(final Byte numberOne,final Byte numberTwo){
		return numberOne.byteValue() != numberTwo.byteValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is different than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean ne(final Short numberOne,final Short numberTwo){
		return numberOne.shortValue() != numberTwo.shortValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is different than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean ne(final Integer numberOne,final Integer numberTwo){
		return numberOne.intValue() != numberTwo.intValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is different than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean ne(final Long numberOne,final Long numberTwo){
		return numberOne.longValue() != numberTwo.longValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is different than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean ne(final Float numberOne,final Float numberTwo){
		return numberOne.floatValue() != numberTwo.floatValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is different than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean ne(final Double numberOne,final Double numberTwo){
		return numberOne.doubleValue() != numberTwo.doubleValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is less than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean lt(final Byte numberOne,final Byte numberTwo){
		return numberOne.byteValue() < numberTwo.byteValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is less than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean lt(final Short numberOne,final Short numberTwo){
		return numberOne.shortValue() < numberTwo.shortValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is less than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean lt(final Integer numberOne,final Integer numberTwo){
		return numberOne.intValue() < numberTwo.intValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is less than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean lt(final Long numberOne,final Long numberTwo){
		return numberOne.longValue() < numberTwo.longValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is less than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean lt(final Float numberOne,final Float numberTwo){
		return numberOne.floatValue() < numberTwo.floatValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is less than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean lt(final Double numberOne,final Double numberTwo){
		return numberOne.doubleValue() < numberTwo.doubleValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is great than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean gt(final Byte numberOne,final Byte numberTwo){
		return numberOne.byteValue() > numberTwo.byteValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is great than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean gt(final Short numberOne,final Short numberTwo){
		return numberOne.shortValue() > numberTwo.shortValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is great than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean gt(final Integer numberOne,final Integer numberTwo){
		return numberOne.intValue() > numberTwo.intValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is great than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean gt(final Long numberOne,final Long numberTwo){
		return numberOne.longValue() > numberTwo.longValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is great than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean gt(final Float numberOne,final Float numberTwo){
		return numberOne.floatValue() > numberTwo.floatValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is great than the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean gt(final Double numberOne,final Double numberTwo){
		return numberOne.doubleValue() > numberTwo.doubleValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is equals the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean eq(final Byte numberOne,final Byte numberTwo){
		return numberOne.byteValue() == numberTwo.byteValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is equals the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean eq(final Short numberOne,final Short numberTwo){
		return numberOne.shortValue() == numberTwo.shortValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is equals the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean eq(final Integer numberOne,final Integer numberTwo){
		return numberOne.intValue() == numberTwo.intValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is equals the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean eq(final Long numberOne,final Long numberTwo){
		return numberOne.longValue() == numberTwo.longValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is equals the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean eq(final Float numberOne,final Float numberTwo){
		return numberOne.floatValue() == numberTwo.floatValue();
	}
	
	/**
	 * <p>Verifies if the first parameter is equals the second parameter.</p>
	 * @param numberOne
	 * @param numberTwo
	 * @return Boolean
	 */
	public static Boolean eq(final Double numberOne,final Double numberTwo){
		return numberOne.doubleValue() == numberTwo.doubleValue();
	}
	
}
